用C++解ax^n +bx^ (n-1)+…+cx+k=0的根

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:21:04
请大家帮帮忙

常识是n次方程有n个解(包括虚根),而n次方程(n>3)至今还没有解析解。
所以,如果要求其解,必定应给顶区间[a,b],在该区间中求一解。
这个求解方法可以用二分法求。
记f(x)=a(n)*x^n+a(n-1)*x^(n-1)+...+a(1)*x+a(0)
(a后面的括号里的数表示为下标)
那么必有f(a)*f(b)<0,否则无法保证里面有一解。
取c=1/2(a+b),计算f(c),若f(c)*f(b)<0,则令a=c,b=b(这是赋值),继续返回计算f(c);
若f(c)*f(a)<0,则令b=c,a=a,继续返回计算f(c)。
若f(c)=0,则输出c,为该方程在[a,b]间的解。

重复计算直到|a-b|<e,(e提前给定,计算机中通常取10^(-6))取c=1/2(a+b)为近似解。
具体程序可以用循环,也可以用函数递归。
我电脑里没有C++的程序,所以就不编了,自己试试吧!

C++????
什么